package com.shujia.day14;

import java.io.*;

public class Code17ObjectInputStream {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        /*
            ObjectInputStream:
                表示可以从一个文件中读取对应的对象数据
            注意：
                1.对于对象的类不能做修改
                2.对于一些属性如果不想将其传递给其他的程序，那么可以对该属性添加transient关键字
         */

        // public ObjectInputStream(InputStream in) throws IOException {
        ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream("data/object.txt"));

        Object o = objectInputStream.readObject();

        System.out.println((Student)o);  // 在文件中已经包含了有当前要读取的对象类的路径 所以可以直接判断


        /*
            修改student中的name权限后报错：
                java.io.InvalidClassException: com.shujia.day14.Student;
                local class incompatible: stream classdesc serialVersionUID = -6084813698588795818,
                local class serialVersionUID = 495127419711157411
            对于序列化写入时 ObjectOutputStream使用的序列化版本和当前的Student的序列化版本不一致
         */


        objectInputStream.close();

    }
}
